package com.micro.ai.commons.constant;

/**
 * 通用常量定义
 * 
 * @author micro-ai
 * @since 0.0.1
 */
public final class CommonConstants {

    private CommonConstants() {
        // 工具类不允许实例化
    }

    /**
     * 成功状态码
     */
    public static final int SUCCESS_CODE = 200;

    /**
     * 失败状态码
     */
    public static final int ERROR_CODE = 500;

    /**
     * 成功消息
     */
    public static final String SUCCESS_MESSAGE = "操作成功";

    /**
     * 失败消息
     */
    public static final String ERROR_MESSAGE = "操作失败";

    /**
     * 默认页码
     */
    public static final int DEFAULT_PAGE_NUM = 1;

    /**
     * 默认页大小
     */
    public static final int DEFAULT_PAGE_SIZE = 10;

    /**
     * 最大页大小
     */
    public static final int MAX_PAGE_SIZE = 1000;

    /**
     * 默认字符编码
     */
    public static final String DEFAULT_CHARSET = "UTF-8";

    /**
     * 默认日期时间格式
     */
    public static final String DEFAULT_DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";

    /**
     * 默认日期格式
     */
    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";

    /**
     * 默认时间格式
     */
    public static final String DEFAULT_TIME_PATTERN = "HH:mm:ss";

    /**
     * 系统用户ID
     */
    public static final Long SYSTEM_USER_ID = 0L;

    /**
     * 系统用户名
     */
    public static final String SYSTEM_USER_NAME = "system";

    /**
     * 默认租户ID
     */
    public static final String DEFAULT_TENANT_ID = "default";

    /**
     * 请求ID头名称
     */
    public static final String REQUEST_ID_HEADER = "X-Request-Id";

    /**
     * 用户ID头名称
     */
    public static final String USER_ID_HEADER = "X-User-Id";

    /**
     * 租户ID头名称
     */
    public static final String TENANT_ID_HEADER = "X-Tenant-Id";

    /**
     * 认证令牌头名称
     */
    public static final String AUTHORIZATION_HEADER = "Authorization";

    /**
     * Bearer 令牌前缀
     */
    public static final String BEARER_PREFIX = "Bearer ";

    /**
     * 空字符串
     */
    public static final String EMPTY_STRING = "";

    /**
     * 空JSON对象
     */
    public static final String EMPTY_JSON_OBJECT = "{}";

    /**
     * 空JSON数组
     */
    public static final String EMPTY_JSON_ARRAY = "[]";
}
